home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / pretty27.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  63.0 KB  |  1,852 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "pretty.h"
  9. /*No:RUN_FEATURE_2.arguments*/
  10. /*No:RUN_FEATURE_2.actuals_clients*/
  11. void r820make(T820* C,T0* a1,T0* a2,T0* a3){
  12. C->_current_type=a1;
  13. C->_name=a2;
  14. C->_base_feature=a3;
  15. r199put(((T199*)((((T368*)((T368*)(r820run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  16. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  17. C->_use_current_state=1015;
  18. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  19. r820initialize(C);
  20. r604pop(((T604*)(oBC364small_eiffel)));
  21. }
  22. /*No:RUN_FEATURE_2.name*/
  23. int r820arg_count(T820* C){
  24. int R=0;
  25. /*IF*/if (((((T820*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  26. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T820*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  27. }
  28. /*FI*/return R;
  29. }
  30. /*No:RUN_FEATURE_2.local_vars*/
  31. /*No:RUN_FEATURE_2.base_feature*/
  32. /*No:RUN_FEATURE_2.start_position*/
  33. int r820is_exported_in(T820* C,T0* a1){
  34. int R=0;
  35. R=r636gives_permission_to(((T636*)(r820clients(C))),a1);
  36. return R;
  37. }
  38. /*No:RUN_FEATURE_2.result_type*/
  39. void r820add_client(T820* C,T0* a1){
  40. int _i=0;
  41. /*IF*/if (((((T820*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  42. {T187*n=malloc(sizeof(*n));
  43. *n=M187;
  44. r187with_capacity(n,4);
  45. C->_actuals_clients=(T0*)n;
  46. }
  47. r187add_last(((T187*)((((T820*)C))->_actuals_clients/*12*/)),a1);
  48. }
  49. else {
  50. _i=r187fast_index_of(((T187*)((((T820*)C))->_actuals_clients/*12*/)),a1);
  51. /*IF*/if ((_i)>((((T187*)((T187*)((((T820*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  52. r187add_last(((T187*)((((T820*)C))->_actuals_clients/*12*/)),a1);
  53. }
  54. /*FI*/}
  55. /*FI*/r368add_client(((T368*)(r820run_class(C))),a1);
  56. }
  57. /*No:RUN_FEATURE_2.use_current_state*/
  58. /*No:RUN_FEATURE_2.current_type*/
  59. T0* r820run_class(T820* C){
  60. T0* R=NULL;
  61. R=X291run_class((((T820*)C))->_current_type/*4*/);
  62. return R;
  63. }
  64. /*No:RUN_FEATURE_2.ucs_not_computed*/
  65. T0* r820clients(T820* C){
  66. T0* R=NULL;
  67. T0* _bfbc=NULL;
  68. T0* _bc=NULL;
  69. /*IF*/if (((((T820*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  70. _bc=X291base_class((((T820*)C))->_current_type/*4*/);
  71. _bfbc=(((T106*)((T106*)((((T820*)C))->_base_feature/*32*/))))->_base_class/*4*/;
  72. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  73. R=(((T106*)((T106*)((((T820*)C))->_base_feature/*32*/))))->_clients/*20*/;
  74. }
  75. else {
  76. R=r605clients_for(((T605*)_bc),(((T820*)C))->_name/*16*/);
  77. }
  78. /*FI*/C->_clients_memory=R;
  79. }
  80. else {
  81. R=(((T820*)C))->_clients_memory/*8*/;
  82. }
  83. /*FI*/return R;
  84. }
  85. /*No:RUN_FEATURE_2.clients_memory*/
  86. void r820initialize(T820* C){
  87. C->_result_type=X291to_runnable((((T106*)((T106*)((((T820*)C))->_base_feature/*32*/))))->_result_type/*12*/,(((T820*)C))->_current_type/*4*/);
  88. }
  89. /*No:CALL_1_C.arguments*/
  90. T0* r492add_comment(T492* C,T0* a1){
  91. T0* R=NULL;
  92. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  93. R=(T0*)C;
  94. }
  95. else {
  96. {T529*n=malloc(sizeof(*n));
  97. *n=M529;
  98. r529make(n,(T0*)C,a1);
  99. R=(T0*)n;
  100. }
  101. }
  102. /*FI*/return R;
  103. }
  104. int r492to_integer(T492* C){
  105. int R=0;
  106. r492error(r492start_position(C),((T0*)ms69_470));
  107. return R;
  108. }
  109. int r492is_a(T492* C,T0* a1){
  110. int R=0;
  111. R=X291is_a(X291run_type((((T492*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  112. /*IF*/if (!(R)) {
  113. r683add_position(r492start_position(C));
  114. r492error(X662start_position(a1),((T0*)ms4_662));
  115. }
  116. /*FI*/return R;
  117. }
  118. /*No:CALL_1_C.is_current*/
  119. void r492make(T492* C,T0* a1,T0* a2,T0* a3){
  120. C->_target=a1;
  121. C->_feature_name=a2;
  122. C->_arguments=a3;
  123. }
  124. void r492print_as_target(T492* C){
  125. r492pretty_print(C);
  126. r238put_character(((T238*)(oBC364fmt)),'\56');
  127. }
  128. /*No:CALL_1_C.nb_errors*/
  129. /*No:CALL_1_C.feature_name*/
  130. /*No:CALL_1_C.fz_iinaiv*/
  131. /*No:CALL_1_C.dot_precedence*/
  132. /*No:CALL_1_C.run_feature*/
  133. T0* r492start_position(T492* C){
  134. T0* R=NULL;
  135. R=X776start_position((((T492*)C))->_feature_name/*12*/);
  136. return R;
  137. }
  138. /*No:CALL_1_C.target*/
  139. /*No:CALL_1_C.precedence*/
  140. T0* r492to_runnable(T492* C,T0* a1){
  141. T0* R=NULL;
  142. T0* _tla=NULL;
  143. T0* _a=NULL;
  144. /*IF*/if (((((T492*)C))->_current_type/*4*/)==((void*)(NULL))) {
  145. r492to_runnable_0(C,a1);
  146. _a=r431to_runnable(((T431*)((((T492*)C))->_arguments/*24*/)),a1);
  147. /*IF*/if ((_a)==((void*)(NULL))) {
  148. r492error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T492*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  149. }
  150. else {
  151. C->_arguments=_a;
  152. }
  153. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  154. r431match_with(((T431*)((((T492*)C))->_arguments/*24*/)),(((T492*)C))->_run_feature/*16*/);
  155. }
  156. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  157. _tla=(((T492*)C))->_result_type/*20*/;
  158. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  159. case 239: 
  160. break;
  161. default:
  162. _tla=NULL;
  163. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  164. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T492*)C))->_arguments/*24*/)))/*)*/));
  165. }
  166. /*FI*/}
  167. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  168. R=(T0*)C;
  169. }
  170. /*FI*/}
  171. else {
  172. R=r492twin(C);
  173. /*[IRF3.3set_current_type*/((((T492*)(((T492*)R))))->_current_type)=(NULL);
  174. /*]*/
  175. R=r492to_runnable(((T492*)R),a1);
  176. }
  177. /*FI*/return R;
  178. }
  179. void r492bracketed_pretty_print(T492* C){
  180. X662print_as_target((((T492*)C))->_target/*8*/);
  181. r238put_string(((T238*)(oBC364fmt)),X776to_string((((T492*)C))->_feature_name/*12*/));
  182. r238put_character(((T238*)(oBC364fmt)),'\50');
  183. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T492*)C))->_arguments/*24*/)))/*)*/);
  184. r238put_character(((T238*)(oBC364fmt)),'\51');
  185. }
  186. /*No:CALL_1_C.result_type*/
  187. T0* r492twin(T492* C){
  188. T0* R=NULL;
  189. R=malloc(sizeof(*C));
  190. *((T492*)R)=*C;
  191. return R;
  192. }
  193. /*No:CALL_1_C.set_current_type*/
  194. void r492pretty_print(T492* C){
  195. X662print_as_target((((T492*)C))->_target/*8*/);
  196. r238put_string(((T238*)(oBC364fmt)),X776to_string((((T492*)C))->_feature_name/*12*/));
  197. r238put_character(((T238*)(oBC364fmt)),'\50');
  198. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T492*)C))->_arguments/*24*/)))/*)*/);
  199. r238put_character(((T238*)(oBC364fmt)),'\51');
  200. }
  201. /*No:CALL_1_C.current_type*/
  202. /*No:CALL_1_C.is_manifest_string*/
  203. /*No:CALL_1_C.is_void*/
  204. void r492to_runnable_0(T492* C,T0* a1){
  205. C->_current_type=a1;
  206. r492cpc_to_runnable(C,a1);
  207. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T492*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  208. /*IF*/if (((((T492*)C))->_result_type/*20*/)==((void*)(NULL))) {
  209. r683add_position(X496start_position((((T492*)C))->_run_feature/*16*/));
  210. r492error(X776start_position((((T492*)C))->_feature_name/*12*/),((T0*)ms1_295));
  211. }
  212.  else if (X291is_like_current((((T492*)C))->_result_type/*20*/)) {
  213. C->_result_type=X662result_type((((T492*)C))->_target/*8*/);
  214. }
  215. /*FI*/}
  216. void r492cpc_to_runnable(T492* C,T0* a1){
  217. T0* _rc=NULL;
  218. T0* _t=NULL;
  219. _t=X662to_runnable((((T492*)C))->_target/*8*/,a1);
  220. /*IF*/if ((_t)==((void*)(NULL))) {
  221. r683add_position(X662start_position((((T492*)C))->_target/*8*/));
  222. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  223. r683fatal_error(((T683*)(oBC364eh)),b1);
  224. }/*]*/
  225. }
  226. /*FI*/C->_target=_t;
  227. _rc=X291run_class(X662result_type((((T492*)C))->_target/*8*/));
  228. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  229. r576update((((T492*)C))->_target/*8*/,(((T492*)C))->_run_feature/*16*/);
  230. }
  231. void r492error(T0* a1,T0* a2){
  232. r683add_position(a1);
  233. r683error(((T683*)(oBC364eh)),a2);
  234. }
  235. /*No:CALL_1_C.fatal_error*/
  236. /*No:CALL_1_C.fz_bad_argument*/
  237. /*No:CALL_1_C.arg1*/
  238. T0* r126add_comment(T126* C,T0* a1){
  239. T0* R=NULL;
  240. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  241. R=(T0*)C;
  242. }
  243. /*AF*/else {
  244. {T46*n=malloc(sizeof(*n));
  245. *n=M46;
  246. r46make(n,(T0*)C,a1);
  247. R=(T0*)n;
  248. }
  249. }
  250. /*FI*/return R;
  251. }
  252. void r126make(T126* C,T0* a1,T0* a2){
  253. C->_left_side=a1;
  254. C->_right_side=a2;
  255. }
  256. /*No:REVERSE_ASSIGNMENT.nb_errors*/
  257. T0* r126start_position(T126* C){
  258. T0* R=NULL;
  259. R=X662start_position((((T126*)C))->_left_side/*8*/);
  260. return R;
  261. }
  262. T0* r126to_runnable(T126* C,T0* a1){
  263. T0* R=NULL;
  264. T0* _e=NULL;
  265. /*IF*/if (((((T126*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  266. C->_run_compound=a1;
  267. _e=X662to_runnable((((T126*)C))->_left_side/*8*/,r126current_type(C));
  268. /*IF*/if ((_e)==((void*)(NULL))) {
  269. r126error(X662start_position((((T126*)C))->_left_side/*8*/),((T0*)ms62_470));
  270. }
  271. else {
  272. C->_left_side=_e;
  273. }
  274. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  275. _e=X662to_runnable((((T126*)C))->_right_side/*12*/,r126current_type(C));
  276. /*IF*/if ((_e)==((void*)(NULL))) {
  277. r126error(X662start_position((((T126*)C))->_right_side/*12*/),((T0*)ms63_470));
  278. }
  279. else {
  280. C->_right_side=_e;
  281. }
  282. /*FI*/}
  283. /*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&(X291is_a(X291run_type(r126right_type(C)),X291run_type(r126left_type(C))))) {
  284. /*IF*/if ((!(X662is_current((((T126*)C))->_right_side/*12*/)))&&(!(X291is_like_current(r126left_type(C))))) {
  285. r683add_type(r126right_type(C),((T0*)ms12_126));
  286. r683add_type(r126left_type(C),((T0*)ms13_126));
  287. r126warning(r126start_position(C),((T0*)ms14_126));
  288. }
  289. /*FI*/}
  290. /*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  291. /*]*/
  292. r38clear(((T38*)(oBC683positions)));
  293. /*]*/
  294. /*IF*/if (!(X291is_reference(X291run_type(r126left_type(C))))) {
  295. r683add_type(X291run_type(r126left_type(C)),((T0*)ms15_126));
  296. r126error(r126start_position(C),((T0*)ms16_126));
  297. }
  298. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  299. R=(T0*)C;
  300. }
  301. /*FI*/}
  302. else {
  303. {T126*n=malloc(sizeof(*n));
  304. *n=M126;
  305. r126make(n,(((T126*)C))->_left_side/*8*/,(((T126*)C))->_right_side/*12*/);
  306. R=(T0*)n;
  307. }
  308. R=r126to_runnable(((T126*)R),a1);
  309. }
  310. /*FI*/return R;
  311. }
  312. void r126pretty_print_assignment(T0* a1,T0* a2,T0* a3){
  313. int _semi_colon_flag=0;
  314. X662pretty_print(a1);
  315. r238put_character(((T238*)(oBC364fmt)),'\40');
  316. r238put_string(((T238*)(oBC364fmt)),a2);
  317. r238put_character(((T238*)(oBC364fmt)),'\40');
  318. _semi_colon_flag=(((T238*)((T238*)(oBC364fmt))))->_semi_colon_flag/*25*/;
  319. r238level_incr(((T238*)(oBC364fmt)));
  320. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
  321. /*]*/
  322. X662pretty_print(a3);
  323. /*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(_semi_colon_flag);
  324. /*]*/
  325. /*IF*/if (_semi_colon_flag) {
  326. r238put_character(((T238*)(oBC364fmt)),'\73');
  327. }
  328. /*FI*/r238level_decr(((T238*)(oBC364fmt)));
  329. }
  330. T0* r126right_type(T126* C){
  331. T0* R=NULL;
  332. R=X662result_type((((T126*)C))->_right_side/*12*/);
  333. return R;
  334. }
  335. /*No:REVERSE_ASSIGNMENT.left_side*/
  336. /*No:REVERSE_ASSIGNMENT.pretty_print*/
  337. T0* r126current_type(T126* C){
  338. T0* R=NULL;
  339. /*IF*/if (((((T126*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  340. R=(((T592*)((T592*)((((T126*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  341. }
  342. /*FI*/return R;
  343. }
  344. /*No:REVERSE_ASSIGNMENT.run_compound*/
  345. /*No:REVERSE_ASSIGNMENT.right_side*/
  346. /*No:REVERSE_ASSIGNMENT.fz_blhsoa*/
  347. /*No:REVERSE_ASSIGNMENT.fz_brhsoa*/
  348. void r126error(T0* a1,T0* a2){
  349. r683add_position(a1);
  350. r683error(((T683*)(oBC364eh)),a2);
  351. }
  352. /*No:REVERSE_ASSIGNMENT.end_mark_comment*/
  353. T0* r126left_type(T126* C){
  354. T0* R=NULL;
  355. R=X662result_type((((T126*)C))->_left_side/*8*/);
  356. return R;
  357. }
  358. void r126warning(T0* a1,T0* a2){
  359. r683add_position(a1);
  360. r683warning(((T683*)(oBC364eh)),a2);
  361. }
  362. int r542affect(T542* C,T0* a1){
  363. int R=0;
  364. /*IF*/if (/*(IRF4.7for_all*/((((T542*)C))->_list/*4*/)==(NULL)/*)*/) {
  365. R=1;
  366. }
  367. else {
  368. R=r953has(((T953*)((((T542*)C))->_list/*4*/)),a1);
  369. }
  370. /*FI*/return R;
  371. }
  372. void r542make_all(T542* C,T0* a1){
  373. C->_clients=a1;
  374. C->_list=NULL;
  375. }
  376. void r542make(T542* C,T0* a1,T0* a2){
  377. C->_clients=a1;
  378. {T953*n=malloc(sizeof(*n));
  379. *n=M953;
  380. r953make(n,a2);
  381. C->_list=(T0*)n;
  382. }
  383. }
  384. void r542pretty_print(T542* C){
  385. r636pretty_print(((T636*)((((T542*)C))->_clients/*0*/)));
  386. /*IF*/if (/*(IRF4.7for_all*/((((T542*)C))->_list/*4*/)==(NULL)/*)*/) {
  387. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_542));
  388. }
  389. else {
  390. r953pretty_print(((T953*)((((T542*)C))->_list/*4*/)));
  391. }
  392. /*FI*/}
  393. /*No:EXPORT_ITEM.list*/
  394. /*No:EXPORT_ITEM.clients*/
  395. /*No:EXPORT_ITEM.for_all*/
  396. /*No:E_INSPECT.else_position*/
  397. T0* r270add_comment(T270* C,T0* a1){
  398. T0* R=NULL;
  399. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  400. R=(T0*)C;
  401. }
  402.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  403. R=(T0*)C;
  404. }
  405. else {
  406. {T46*n=malloc(sizeof(*n));
  407. *n=M46;
  408. r46make(n,(T0*)C,a1);
  409. R=(T0*)n;
  410. }
  411. }
  412. /*FI*/}
  413. /*FI*/return R;
  414. }
  415. /*No:E_INSPECT.when_list*/
  416. /*No:E_INSPECT.fz_else*/
  417. void r270add_when(T270* C,T0* a1){
  418. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  419. {T377*n=malloc(sizeof(*n));
  420. *n=M377;
  421. /*[IRF3.3make*/((((T377*)(n)))->_list)=(se_ma147(1,a1));
  422. /*]*/
  423. C->_when_list=(T0*)n;
  424. }
  425. }
  426. else {
  427. /*[IRF3.5add_last*/r147add_last(((T147*)((((T377*)((T377*)((((T270*)C))->_when_list/*16*/))))->_list/*4*/)),a1);
  428. /*]*/
  429. }
  430. /*FI*/}
  431. void r270make(T270* C,T0* a1,T0* a2){
  432. C->_start_position=a1;
  433. C->_expression=a2;
  434. }
  435. /*No:E_INSPECT.nb_errors*/
  436. /*No:E_INSPECT.expression*/
  437. void r270set_else_compound(T270* C,T0* a1,T0* a2){
  438. C->_else_position=a1;
  439. C->_else_compound=a2;
  440. }
  441. /*No:E_INSPECT.set_run_compound*/
  442. /*No:E_INSPECT.start_position*/
  443. /*No:E_INSPECT.includes*/
  444. T0* r270to_runnable(T270* C,T0* a1){
  445. T0* R=NULL;
  446. T0* _wl=NULL;
  447. T0* _te=NULL;
  448. T0* _e=NULL;
  449. /*IF*/if (((((T270*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  450. C->_run_compound=a1;
  451. _e=X662to_runnable((((T270*)C))->_expression/*12*/,r270current_type(C));
  452. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  453. C->_expression=_e;
  454. _te=X291run_type(X662result_type(_e));
  455. }
  456. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  457. /*IF*/if (X291is_character(_te)) {
  458. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  459. C->_when_list=r377to_runnable_character(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
  460. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  461. r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
  462. }
  463. /*FI*/}
  464. /*FI*/}
  465.  else if (X291is_integer(_te)) {
  466. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  467. C->_when_list=r377to_runnable_integer(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
  468. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  469. r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
  470. }
  471. /*FI*/}
  472. /*FI*/}
  473. else {
  474. /*[IRF3.6append*/{T0* b1=((T0*)ms2_270);
  475. r7append(((T7*)(oBC683explanation)),b1);
  476. }/*]*/
  477. r683add_type(_te,((T0*)ms3_270));
  478. r683add_position((((T270*)C))->_start_position/*8*/);
  479. r683print_as_error(((T683*)(oBC364eh)));
  480. }
  481. /*FI*/}
  482. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  483. C->_else_compound=r592to_runnable(((T592*)((((T270*)C))->_else_compound/*24*/)),r270current_type(C));
  484. }
  485. /*FI*/R=(T0*)C;
  486. }
  487. else {
  488. R=r270twin(C);
  489. {T377*n=malloc(sizeof(*n));
  490. *n=M377;
  491. r377from_when_list(n,(((T270*)C))->_when_list/*16*/);
  492. _wl=(T0*)n;
  493. }
  494. /*[IRF3.3set_when_list*/((((T270*)(((T270*)R))))->_when_list)=(_wl);
  495. /*]*/
  496. /*[IRF3.3set_run_compound*/((((T270*)(((T270*)R))))->_run_compound)=(NULL);
  497. /*]*/
  498. R=r270to_runnable(((T270*)R),a1);
  499. }
  500. /*FI*/return R;
  501. }
  502. /*No:E_INSPECT.fz_inspect*/
  503. T0* r270twin(T270* C){
  504. T0* R=NULL;
  505. R=malloc(sizeof(*C));
  506. *((T270*)R)=*C;
  507. return R;
  508. }
  509. /*No:E_INSPECT.em1*/
  510. void r270pretty_print(T270* C){
  511. r238keyword(((T238*)(oBC364fmt)),((T0*)ms25_470));
  512. r238level_incr(((T238*)(oBC364fmt)));
  513. /*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
  514. r238indent(((T238*)(oBC364fmt)));
  515. }
  516. /*FI*//*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(0);
  517. /*]*/
  518. X662pretty_print((((T270*)C))->_expression/*12*/);
  519. r238level_decr(((T238*)(oBC364fmt)));
  520. r238indent(((T238*)(oBC364fmt)));
  521. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  522. r377pretty_print(((T377*)((((T270*)C))->_when_list/*16*/)));
  523. }
  524. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)==((void*)(NULL))) {
  525. /*IF*/if (((((T270*)C))->_else_position/*20*/)!=((void*)(NULL))) {
  526. r238indent(((T238*)(oBC364fmt)));
  527. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_470));
  528. }
  529. /*FI*/}
  530. else {
  531. r238indent(((T238*)(oBC364fmt)));
  532. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_470));
  533. r238level_incr(((T238*)(oBC364fmt)));
  534. r592pretty_print(((T592*)((((T270*)C))->_else_compound/*24*/)));
  535. r238level_decr(((T238*)(oBC364fmt)));
  536. }
  537. /*FI*/r238indent(((T238*)(oBC364fmt)));
  538. r238keyword(((T238*)(oBC364fmt)),((T0*)ms4_270));
  539. /*IF*/if (r238print_end_inspect(((T238*)(oBC364fmt)))) {
  540. r238put_end(((T238*)(oBC364fmt)),((T0*)ms25_470));
  541. }
  542. /*FI*/}
  543. /*No:E_INSPECT.else_compound*/
  544. /*No:E_INSPECT.set_when_list*/
  545. T0* r270current_type(T270* C){
  546. T0* R=NULL;
  547. /*IF*/if (((((T270*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  548. R=(((T592*)((T592*)((((T270*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  549. }
  550. /*FI*/return R;
  551. }
  552. /*No:E_INSPECT.run_compound*/
  553. void r270error(T0* a1,T0* a2){
  554. r683add_position(a1);
  555. r683error(((T683*)(oBC364eh)),a2);
  556. }
  557. /*No:E_INSPECT.end_mark_comment*/
  558. /*No:ONCE_FUNCTION.arguments*/
  559. T0* r844try_to_undefine(T844* C,T0* a1,T0* a2){
  560. T0* R=NULL;
  561. X776undefine_in(a1,a2);
  562. R=r844try_to_undefine_aux(C,a1,a2);
  563. /*IF*/if ((R)!=((void*)(NULL))) {
  564. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T844*)C))->_clients/*24*/);
  565. /*]*/
  566. }
  567. else {
  568. r605fatal_undefine(((T605*)a2),a1);
  569. }
  570. /*FI*/return R;
  571. }
  572. /*No:ONCE_FUNCTION.is_deferred*/
  573. /*No:ONCE_FUNCTION.fz_bad_assertion*/
  574. T0* r844runnable(T0* a1,T0* a2,T0* a3){
  575. T0* R=NULL;
  576. T0* _a=NULL;
  577. int _i=0;
  578. /*IF*/if (!(r608empty(((T608*)a1)))) {
  579. R=r608twin(((T608*)a1));
  580. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  581. while (!((_i)==(0))) {
  582. r604push(((T604*)(oBC364small_eiffel)),a3);
  583. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  584. /*IF*/if ((_a)==((void*)(NULL))) {
  585. r844error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  586. }
  587. else {
  588. /*[IRF3.6put*/{T608* C1=((T608*)R);
  589. T0* b1=_a;
  590. int b2=_i;
  591. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  592. }/*]*/
  593. }
  594. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  595. _i=(_i)-(1);
  596. }
  597. }
  598. /*FI*/return R;
  599. }
  600. /*No:ONCE_FUNCTION.rescue_compound*/
  601. void r844add_into(T844* C,T0* a1){
  602. T0* _fn=NULL;
  603. int _i=0;
  604. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  605. _i=1;
  606. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  607. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  608. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  609. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  610. r683add_position(X776start_position(_fn));
  611. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  612. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  613. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  614. r7append(((T7*)(oBC683explanation)),b1);
  615. }/*]*/
  616. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  617. }
  618. else {
  619. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  620. }
  621. /*FI*/_i=(_i)+(1);
  622. }
  623. }
  624. /*No:ONCE_FUNCTION.end_comment*/
  625. T0* r844try_to_undefine_aux(T844* C,T0* a1,T0* a2){
  626. T0* R=NULL;
  627. {T649*n=malloc(sizeof(*n));
  628. *n=M649;
  629. r649from_effective(n,a1,(((T844*)C))->_arguments/*28*/,(((T844*)C))->_result_type/*12*/,(((T844*)C))->_require_assertion/*36*/,(((T844*)C))->_ensure_assertion/*40*/,a2);
  630. R=(T0*)n;
  631. }
  632. return R;
  633. }
  634. void r844make(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  635. r844make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  636. C->_result_type=a3;
  637. }
  638. /*No:ONCE_FUNCTION.not_computed*/
  639. /*No:ONCE_FUNCTION.nb_errors*/
  640. void r844pretty_print_one_name(T0* a1){
  641. /*IF*/if (X776is_frozen(a1)) {
  642. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
  643. }
  644. /*FI*/X776definition_pretty_print(a1);
  645. }
  646. void r844make_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  647. r844make_e_feature(C,a1,NULL);
  648. C->_header_comment=a4;
  649. C->_arguments=a2;
  650. C->_obsolete_mark=a3;
  651. C->_require_assertion=a5;
  652. }
  653. /*No:ONCE_FUNCTION.local_vars*/
  654. void r844set_header_comment(T844* C,T0* a1){
  655. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  656. C->_end_comment=a1;
  657. }
  658. /*FI*/}
  659. T0* r844start_position(T844* C){
  660. T0* R=NULL;
  661. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  662. return R;
  663. }
  664. T0* r844to_run_feature(T844* C,T0* a1,T0* a2){
  665. T0* R=NULL;
  666. r844check_obsolete(C);
  667. {T868*n=malloc(sizeof(*n));
  668. *n=M868;
  669. r868make(n,a1,a2,(T0*)C);
  670. R=(T0*)n;
  671. }
  672. return R;
  673. }
  674. /*No:ONCE_FUNCTION.ensure_assertion*/
  675. /*No:ONCE_FUNCTION.code_require*/
  676. T0* r844run_ensure(T0* a1){
  677. T0* R=NULL;
  678. T0* _r=NULL;
  679. r608clear(((T608*)(oBC359assertion_collector)));
  680. /*[IRF3.3clear*/{T0* _default_item=NULL;
  681. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  682. }/*]*/
  683. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  684. _r=r844runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  685. /*IF*/if ((_r)!=((void*)(NULL))) {
  686. {T633*n=malloc(sizeof(*n));
  687. *n=M633;
  688. r633from_runnable(n,_r);
  689. R=(T0*)n;
  690. }
  691. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  692. /*]*/
  693. /*[IRF3.3clear*/{T0* _default_item=NULL;
  694. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  695. }/*]*/
  696. }
  697. /*FI*/return R;
  698. }
  699. T0* r844run_require(T0* a1){
  700. T0* R=NULL;
  701. T0* _ar=NULL;
  702. T0* _hc=NULL;
  703. T0* _er=NULL;
  704. T0* _r=NULL;
  705. int _i=0;
  706. r522clear(((T522*)(oBC359require_collector)));
  707. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  708. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  709. _i=1;
  710. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  711. _er=r522item(((T522*)(oBC359require_collector)),_i);
  712. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  713. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  714. _r=r844runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  715. /*IF*/if ((_r)!=((void*)(NULL))) {
  716. {T343*n=malloc(sizeof(*n));
  717. *n=M343;
  718. r343from_runnable(n,_r);
  719. _er=(T0*)n;
  720. }
  721. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  722. /*]*/
  723. /*IF*/if ((_ar)==((void*)(NULL))) {
  724. _ar=se_ma522(1,_er);
  725. }
  726. else {
  727. r522add_last(((T522*)_ar),_er);
  728. }
  729. /*FI*/}
  730. /*FI*/}
  731. /*FI*/_i=(_i)+(1);
  732. }
  733. /*IF*/if ((_ar)!=((void*)(NULL))) {
  734. {T541*n=malloc(sizeof(*n));
  735. *n=M541;
  736. /*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
  737. /*]*/
  738. R=(T0*)n;
  739. }
  740. }
  741. /*FI*/}
  742. /*FI*/return R;
  743. }
  744. /*No:ONCE_FUNCTION.result_type*/
  745. /*No:ONCE_FUNCTION.fz_03*/
  746. /*No:ONCE_FUNCTION.fz_once*/
  747. /*No:ONCE_FUNCTION.em1*/
  748. void r844pretty_print(T844* C){
  749. T0* _fn=NULL;
  750. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  751. /*]*/
  752. r238indent(((T238*)(oBC364fmt)));
  753. r844pretty_print_profile(C);
  754. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
  755. /*IF*/if (((((T844*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  756. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  757. /*]*/
  758. r238indent(((T238*)(oBC364fmt)));
  759. r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_355));
  760. r805pretty_print(((T805*)((((T844*)C))->_obsolete_mark/*32*/)));
  761. }
  762. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  763. /*]*/
  764. r238indent(((T238*)(oBC364fmt)));
  765. /*IF*/if (((((T844*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
  766. r393pretty_print(((T393*)((((T844*)C))->_header_comment/*16*/)));
  767. }
  768. /*FI*//*IF*/if (((((T844*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  769. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  770. /*]*/
  771. r343pretty_print(((T343*)((((T844*)C))->_require_assertion/*36*/)));
  772. }
  773. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  774. /*]*/
  775. r238indent(((T238*)(oBC364fmt)));
  776. r844pretty_print_routine_body(C);
  777. /*IF*/if (((((T844*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  778. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  779. /*]*/
  780. r633pretty_print(((T633*)((((T844*)C))->_ensure_assertion/*40*/)));
  781. }
  782. /*FI*//*IF*/if (((((T844*)C))->_rescue_compound/*44*/)!=((void*)(NULL))) {
  783. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  784. /*]*/
  785. r238indent(((T238*)(oBC364fmt)));
  786. r238keyword(((T238*)(oBC364fmt)),((T0*)ms3_355));
  787. r592pretty_print(((T592*)((((T844*)C))->_rescue_compound/*44*/)));
  788. }
  789. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  790. /*]*/
  791. r238indent(((T238*)(oBC364fmt)));
  792. r238keyword(((T238*)(oBC364fmt)),((T0*)ms4_355));
  793. /*IF*/if ((((((T844*)C))->_end_comment/*48*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T844*)C))->_end_comment/*48*/)))))) {
  794. r393pretty_print(((T393*)((((T844*)C))->_end_comment/*48*/)));
  795. }
  796.  else if (r238print_end_routine(((T238*)(oBC364fmt)))) {
  797. r238put_string(((T238*)(oBC364fmt)),((T0*)ms5_355));
  798. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  799. X776definition_pretty_print(_fn);
  800. }
  801. /*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
  802. }
  803. /*No:ONCE_FUNCTION.obsolete_mark*/
  804. /*No:ONCE_FUNCTION.set_clients*/
  805. /*No:ONCE_FUNCTION.em2*/
  806. /*No:ONCE_FUNCTION.names*/
  807. /*No:ONCE_FUNCTION.require_assertion*/
  808. /*No:ONCE_FUNCTION.use_current_state*/
  809. /*No:ONCE_FUNCTION.code_ensure*/
  810. void r844set_rescue_compound(T844* C,T0* a1){
  811. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  812. r844error(r844start_position(C),((T0*)ms6_355));
  813. }
  814. /*FI*/C->_rescue_compound=a1;
  815. }
  816. void r844pretty_print_profile(T844* C){
  817. r844pretty_print_names(C);
  818. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  819. /*]*/
  820. r844pretty_print_arguments(C);
  821. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  822. /*]*/
  823. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  824. r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
  825. X291pretty_print((((T844*)C))->_result_type/*12*/);
  826. }
  827. /*FI*/}
  828. void r844pretty_print_names(T844* C){
  829. int _i=0;
  830. _i=1;
  831. r844pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  832. _i=(_i)+(1);
  833. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  834. r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
  835. r844pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  836. _i=(_i)+(1);
  837. }
  838. }
  839. int r844can_hide(T844* C,T0* a1,T0* a2){
  840. int R=0;
  841. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  842. /*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  843. r683add_position(X359start_position(a1));
  844. r844error(r844start_position(C),((T0*)ms5_359));
  845. }
  846. /*FI*/}
  847. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  848. /*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  849. r683add_position(X359start_position(a1));
  850. r844error(r844start_position(C),((T0*)ms6_359));
  851. }
  852.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  853. r683add_position(X359start_position(a1));
  854. r844error(r844start_position(C),((T0*)ms7_359));
  855. }
  856. /*FI*/}
  857. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  858. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  859. /*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  860. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  861. r7append(((T7*)(oBC683explanation)),b1);
  862. }/*]*/
  863. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  864. r7append(((T7*)(oBC683explanation)),b1);
  865. }/*]*/
  866. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  867. }
  868. /*FI*/}
  869. /*FI*/}
  870. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  871. /*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  872. /*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  873. r683add_position(X359start_position(a1));
  874. r683add_position(r844start_position(C));
  875. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  876. r7append(((T7*)(oBC683explanation)),b1);
  877. }/*]*/
  878. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  879. r7append(((T7*)(oBC683explanation)),b1);
  880. }/*]*/
  881. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  882. }
  883. /*FI*/}
  884. /*FI*/}
  885. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  886. return R;
  887. }
  888. /*No:ONCE_FUNCTION.header_comment*/
  889. /*No:ONCE_FUNCTION.routine_body*/
  890. int r844is_merge_with(T844* C,T0* a1,T0* a2){
  891. int R=0;
  892. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  893. /*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  894. r683add_position(X359start_position(a1));
  895. r844error(r844start_position(C),((T0*)ms2_359));
  896. }
  897. /*FI*/}
  898. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  899. /*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  900. r683add_position(X359start_position(a1));
  901. r844error(r844start_position(C),((T0*)ms3_359));
  902. }
  903.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  904. r683add_position(X359start_position(a1));
  905. r844error(r844start_position(C),((T0*)ms4_359));
  906. }
  907. /*FI*/}
  908. /*FI*//*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  909. /*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  910. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  911. }
  912. /*FI*/}
  913. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  914. /*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  915. r683add_position(X359start_position(a1));
  916. r844error(r844start_position(C),((T0*)ms12_359));
  917. }
  918. /*FI*/}
  919. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  920. return R;
  921. }
  922. /*No:ONCE_FUNCTION.fz_dot*/
  923. /*No:ONCE_FUNCTION.set_ensure_assertion*/
  924. /*No:ONCE_FUNCTION.first_name*/
  925. /*No:ONCE_FUNCTION.pretty_print_once_or_do*/
  926. /*No:ONCE_FUNCTION.clients*/
  927. void r844collect_for(T844* C,int a1){
  928. /*IF*/if ((a1)==(1001)) {
  929. /*IF*/if (((((T844*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  930. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/))) {
  931. r522add_last(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/);
  932. }
  933. /*FI*/}
  934. /*FI*/}
  935. else {
  936. /*IF*/if (((((T844*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  937. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T844*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  938. /*]*/
  939. r633add_into(((T633*)((((T844*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  940. }
  941. /*FI*/}
  942. /*FI*/}
  943. void r844make_effective_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  944. r844make_routine(C,a1,a2,a3,a4,a5);
  945. C->_local_vars=a6;
  946. C->_routine_body=a7;
  947. C->_use_current_state=1011;
  948. }
  949. void r844error(T0* a1,T0* a2){
  950. r683add_position(a1);
  951. r683error(((T683*)(oBC364eh)),a2);
  952. }
  953. /*No:ONCE_FUNCTION.base_class*/
  954. void r844pretty_print_arguments(T844* C){
  955. /*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  956. r31pretty_print(((T31*)((((T844*)C))->_arguments/*28*/)));
  957. }
  958. /*FI*/}
  959. void r844pretty_print_routine_body(T844* C){
  960. /*IF*/if (((((T844*)C))->_local_vars/*20*/)!=((void*)(NULL))) {
  961. r620pretty_print(((T620*)((((T844*)C))->_local_vars/*20*/)));
  962. }
  963. /*FI*/r238indent(((T238*)(oBC364fmt)));
  964. /*[IRF3.2pretty_print_once_or_do*/r238put_string(((T238*)(oBC364fmt)),((T0*)ms35_470));
  965. /*]*/
  966. r238put_character(((T238*)(oBC364fmt)),'\40');
  967. /*IF*/if (((((T844*)C))->_routine_body/*52*/)!=((void*)(NULL))) {
  968. r592pretty_print(((T592*)((((T844*)C))->_routine_body/*52*/)));
  969. }
  970. /*FI*/}
  971. void r844make_e_feature(T844* C,T0* a1,T0* a2){
  972. C->_names=a1;
  973. C->_result_type=a2;
  974. }
  975. void r844check_obsolete(T844* C){
  976. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  977. /*IF*/if (((((T844*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  978. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  979. r7append(((T7*)(oBC683explanation)),b1);
  980. }/*]*/
  981. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T844*)C))->_obsolete_mark/*32*/))))->_to_string/*12*/;
  982. r7append(((T7*)(oBC683explanation)),b1);
  983. }/*]*/
  984. r844warning(r844start_position(C),((T0*)ms137_470));
  985. }
  986. /*FI*/}
  987. /*FI*/}
  988. void r844warning(T0* a1,T0* a2){
  989. r683add_position(a1);
  990. r683warning(((T683*)(oBC364eh)),a2);
  991. }
  992. /*No:RUN_FEATURE_3.arguments*/
  993. /*No:RUN_FEATURE_3.actuals_clients*/
  994. void r845make(T845* C,T0* a1,T0* a2,T0* a3){
  995. C->_current_type=a1;
  996. C->_name=a2;
  997. C->_base_feature=a3;
  998. r199put(((T199*)((((T368*)((T368*)(r845run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  999. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  1000. C->_use_current_state=1015;
  1001. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  1002. r845initialize(C);
  1003. r604pop(((T604*)(oBC364small_eiffel)));
  1004. }
  1005. /*No:RUN_FEATURE_3.name*/
  1006. int r845arg_count(T845* C){
  1007. int R=0;
  1008. /*IF*/if (((((T845*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1009. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T845*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  1010. }
  1011. /*FI*/return R;
  1012. }
  1013. /*No:RUN_FEATURE_3.local_vars*/
  1014. /*No:RUN_FEATURE_3.base_feature*/
  1015. /*No:RUN_FEATURE_3.start_position*/
  1016. /*No:RUN_FEATURE_3.ensure_assertion*/
  1017. int r845is_exported_in(T845* C,T0* a1){
  1018. int R=0;
  1019. R=r636gives_permission_to(((T636*)(r845clients(C))),a1);
  1020. return R;
  1021. }
  1022. /*No:RUN_FEATURE_3.result_type*/
  1023. void r845add_client(T845* C,T0* a1){
  1024. int _i=0;
  1025. /*IF*/if (((((T845*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  1026. {T187*n=malloc(sizeof(*n));
  1027. *n=M187;
  1028. r187with_capacity(n,4);
  1029. C->_actuals_clients=(T0*)n;
  1030. }
  1031. r187add_last(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
  1032. }
  1033. else {
  1034. _i=r187fast_index_of(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
  1035. /*IF*/if ((_i)>((((T187*)((T187*)((((T845*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  1036. r187add_last(((T187*)((((T845*)C))->_actuals_clients/*12*/)),a1);
  1037. }
  1038. /*FI*/}
  1039. /*FI*/r368add_client(((T368*)(r845run_class(C))),a1);
  1040. }
  1041. /*No:RUN_FEATURE_3.require_assertion*/
  1042. /*No:RUN_FEATURE_3.use_current_state*/
  1043. /*No:RUN_FEATURE_3.current_type*/
  1044. T0* r845run_class(T845* C){
  1045. T0* R=NULL;
  1046. R=X291run_class((((T845*)C))->_current_type/*4*/);
  1047. return R;
  1048. }
  1049. /*No:RUN_FEATURE_3.ucs_not_computed*/
  1050. /*No:RUN_FEATURE_3.routine_body*/
  1051. T0* r845clients(T845* C){
  1052. T0* R=NULL;
  1053. T0* _bfbc=NULL;
  1054. T0* _bc=NULL;
  1055. /*IF*/if (((((T845*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  1056. _bc=X291base_class((((T845*)C))->_current_type/*4*/);
  1057. _bfbc=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  1058. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  1059. R=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_clients/*24*/;
  1060. }
  1061. else {
  1062. R=r605clients_for(((T605*)_bc),(((T845*)C))->_name/*16*/);
  1063. }
  1064. /*FI*/C->_clients_memory=R;
  1065. }
  1066. else {
  1067. R=(((T845*)C))->_clients_memory/*8*/;
  1068. }
  1069. /*FI*/return R;
  1070. }
  1071. /*No:RUN_FEATURE_3.clients_memory*/
  1072. void r845initialize(T845* C){
  1073. C->_arguments=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_arguments/*28*/;
  1074. /*IF*/if (((((T845*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1075. C->_arguments=r31to_runnable(((T31*)((((T845*)C))->_arguments/*20*/)),(((T845*)C))->_current_type/*4*/);
  1076. }
  1077. /*FI*/C->_local_vars=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
  1078. /*IF*/if (((((T845*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  1079. C->_local_vars=r620to_runnable(((T620*)((((T845*)C))->_local_vars/*48*/)),(((T845*)C))->_current_type/*4*/);
  1080. }
  1081. /*FI*/C->_routine_body=(((T297*)((T297*)((((T845*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
  1082. /*IF*/if (((((T845*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1083. C->_routine_body=r592to_runnable(((T592*)((((T845*)C))->_routine_body/*32*/)),(((T845*)C))->_current_type/*4*/);
  1084. }
  1085. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  1086. C->_require_assertion=r297run_require((T0*)C);
  1087. }
  1088. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1089. C->_ensure_assertion=r297run_ensure((T0*)C);
  1090. }
  1091. /*FI*/}
  1092. T0* r530add_comment(T530* C,T0* a1){
  1093. T0* R=NULL;
  1094. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1095. R=(T0*)C;
  1096. }
  1097.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  1098. R=(T0*)C;
  1099. }
  1100. else {
  1101. {T46*n=malloc(sizeof(*n));
  1102. *n=M46;
  1103. r46make(n,(T0*)C,a1);
  1104. R=(T0*)n;
  1105. }
  1106. }
  1107. /*FI*/}
  1108. /*FI*/return R;
  1109. }
  1110. /*No:IFTHENELSE.make*/
  1111. /*No:IFTHENELSE.nb_errors*/
  1112. /*No:IFTHENELSE.set_else_compound*/
  1113. /*No:IFTHENELSE.start_position*/
  1114. T0* r530to_runnable(T530* C,T0* a1){
  1115. T0* R=NULL;
  1116. T0* _ec=NULL;
  1117. T0* _itl=NULL;
  1118. int _ne=0;
  1119. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  1120. /*IF*/if (((((T530*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1121. C->_run_compound=a1;
  1122. _itl=r712to_runnable(((T712*)((((T530*)C))->_ifthenlist/*12*/)),a1);
  1123. /*IF*/if ((_itl)==((void*)(NULL))) {
  1124. }
  1125. else {
  1126. C->_ifthenlist=_itl;
  1127. }
  1128. /*FI*//*IF*/if ((((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))==(0))&&(((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL)))) {
  1129. _ec=r592to_runnable(((T592*)((((T530*)C))->_else_compound/*16*/)),r530current_type(C));
  1130. /*IF*/if ((_ec)==((void*)(NULL))) {
  1131. }
  1132. else {
  1133. C->_else_compound=_ec;
  1134. }
  1135. /*FI*/}
  1136. /*FI*//*IF*/if ((_itl)!=((void*)(NULL))) {
  1137. R=(T0*)C;
  1138. }
  1139. /*FI*/}
  1140. else {
  1141. R=r530to_runnable(((T530*)(r530twin(C))),a1);
  1142. }
  1143. /*FI*/return R;
  1144. }
  1145. T0* r530twin(T530* C){
  1146. T0* R=NULL;
  1147. R=malloc(sizeof(*C));
  1148. *((T530*)R)=M530;
  1149. r530copy(((T530*)R),((T0*)C));
  1150. return R;
  1151. }
  1152. /*No:IFTHENELSE.ifthenlist*/
  1153. void r530pretty_print(T530* C){
  1154. r238keyword(((T238*)(oBC364fmt)),((T0*)ms6_530));
  1155. r712pretty_print(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
  1156. /*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  1157. r238indent(((T238*)(oBC364fmt)));
  1158. r238keyword(((T238*)(oBC364fmt)),((T0*)ms7_530));
  1159. r592pretty_print(((T592*)((((T530*)C))->_else_compound/*16*/)));
  1160. }
  1161. /*FI*/r238indent(((T238*)(oBC364fmt)));
  1162. r238keyword(((T238*)(oBC364fmt)),((T0*)ms8_530));
  1163. /*IF*/if (r238print_end_if(((T238*)(oBC364fmt)))) {
  1164. r238put_end(((T238*)(oBC364fmt)),((T0*)ms9_530));
  1165. }
  1166. /*FI*/}
  1167. /*No:IFTHENELSE.else_compound*/
  1168. void r530copy(T530* C,T0* a1){
  1169. C->_start_position=(((T530*)((T530*)a1)))->_start_position/*8*/;
  1170. C->_ifthenlist=(((T530*)((T530*)a1)))->_ifthenlist/*12*/;
  1171. C->_else_compound=(((T530*)((T530*)a1)))->_else_compound/*16*/;
  1172. }
  1173. T0* r530current_type(T530* C){
  1174. T0* R=NULL;
  1175. /*IF*/if (((((T530*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1176. R=(((T592*)((T592*)((((T530*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1177. }
  1178. /*FI*/return R;
  1179. }
  1180. /*No:IFTHENELSE.run_compound*/
  1181. void r530add_if_then(T530* C,T0* a1,T0* a2){
  1182. T0* _ifthen=NULL;
  1183. {T809*n=malloc(sizeof(*n));
  1184. *n=M809;
  1185. r809make(n,a1,a2);
  1186. _ifthen=(T0*)n;
  1187. }
  1188. /*IF*/if (((((T530*)C))->_ifthenlist/*12*/)==((void*)(NULL))) {
  1189. {T712*n=malloc(sizeof(*n));
  1190. *n=M712;
  1191. /*[IRF3.3make*/((((T712*)(n)))->_list)=(se_ma948(1,_ifthen));
  1192. /*]*/
  1193. C->_ifthenlist=(T0*)n;
  1194. }
  1195. }
  1196. else {
  1197. /*[IRF3.5add_last*/r948add_last(((T948*)((((T712*)((T712*)((((T530*)C))->_ifthenlist/*12*/))))->_list/*0*/)),_ifthen);
  1198. /*]*/
  1199. }
  1200. /*FI*/}
  1201. /*No:IFTHENELSE.end_mark_comment*/
  1202. /*No:EXTERNAL_PROCEDURE.arguments*/
  1203. T0* r883try_to_undefine(T883* C,T0* a1,T0* a2){
  1204. T0* R=NULL;
  1205. X776undefine_in(a1,a2);
  1206. R=r883try_to_undefine_aux(C,a1,a2);
  1207. /*IF*/if ((R)!=((void*)(NULL))) {
  1208. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T883*)C))->_clients/*20*/);
  1209. /*]*/
  1210. }
  1211. else {
  1212. r605fatal_undefine(((T605*)a2),a1);
  1213. }
  1214. /*FI*/return R;
  1215. }
  1216. /*No:EXTERNAL_PROCEDURE.is_deferred*/
  1217. /*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
  1218. T0* r883runnable(T0* a1,T0* a2,T0* a3){
  1219. T0* R=NULL;
  1220. T0* _a=NULL;
  1221. int _i=0;
  1222. /*IF*/if (!(r608empty(((T608*)a1)))) {
  1223. R=r608twin(((T608*)a1));
  1224. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  1225. while (!((_i)==(0))) {
  1226. r604push(((T604*)(oBC364small_eiffel)),a3);
  1227. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  1228. /*IF*/if ((_a)==((void*)(NULL))) {
  1229. r883error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  1230. }
  1231. else {
  1232. /*[IRF3.6put*/{T608* C1=((T608*)R);
  1233. T0* b1=_a;
  1234. int b2=_i;
  1235. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  1236. }/*]*/
  1237. }
  1238. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  1239. _i=(_i)-(1);
  1240. }
  1241. }
  1242. /*FI*/return R;
  1243. }
  1244. /*No:EXTERNAL_PROCEDURE.rescue_compound*/
  1245. void r883add_into(T883* C,T0* a1){
  1246. T0* _fn=NULL;
  1247. int _i=0;
  1248. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1249. _i=1;
  1250. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1251. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1252. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1253. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1254. r683add_position(X776start_position(_fn));
  1255. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1256. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1257. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1258. r7append(((T7*)(oBC683explanation)),b1);
  1259. }/*]*/
  1260. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1261. }
  1262. else {
  1263. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1264. }
  1265. /*FI*/_i=(_i)+(1);
  1266. }
  1267. }
  1268. /*No:EXTERNAL_PROCEDURE.end_comment*/
  1269. T0* r883try_to_undefine_aux(T883* C,T0* a1,T0* a2){
  1270. T0* R=NULL;
  1271. {T853*n=malloc(sizeof(*n));
  1272. *n=M853;
  1273. r853from_effective(n,a1,(((T883*)C))->_arguments/*24*/,(((T883*)C))->_require_assertion/*32*/,(((T883*)C))->_ensure_assertion/*36*/,a2);
  1274. R=(T0*)n;
  1275. }
  1276. return R;
  1277. }
  1278. T0* r883external_c_name(T883* C){
  1279. T0* R=NULL;
  1280. /*IF*/if (((((T883*)C))->_alias_string/*52*/)==((void*)(NULL))) {
  1281. R=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1282. }
  1283. else {
  1284. R=(((T883*)C))->_alias_string/*52*/;
  1285. }
  1286. /*FI*/return R;
  1287. }
  1288. void r883make(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1289. r883make_routine(C,a1,a2,a3,a4,a5);
  1290. r883make_external_routine(C,a6,a7);
  1291. }
  1292. /*No:EXTERNAL_PROCEDURE.nb_errors*/
  1293. void r883pretty_print_one_name(T0* a1){
  1294. /*IF*/if (X776is_frozen(a1)) {
  1295. r238keyword(((T238*)(oBC364fmt)),((T0*)ms10_359));
  1296. }
  1297. /*FI*/X776definition_pretty_print(a1);
  1298. }
  1299. /*No:EXTERNAL_PROCEDURE.native*/
  1300. void r883make_routine(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1301. r883make_e_feature(C,a1,NULL);
  1302. C->_header_comment=a4;
  1303. C->_arguments=a2;
  1304. C->_obsolete_mark=a3;
  1305. C->_require_assertion=a5;
  1306. }
  1307. void r883set_header_comment(T883* C,T0* a1){
  1308. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1309. C->_end_comment=a1;
  1310. }
  1311. /*FI*/}
  1312. T0* r883start_position(T883* C){
  1313. T0* R=NULL;
  1314. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1315. return R;
  1316. }
  1317. T0* r883to_run_feature(T883* C,T0* a1,T0* a2){
  1318. T0* R=NULL;
  1319. r883check_obsolete(C);
  1320. {T906*n=malloc(sizeof(*n));
  1321. *n=M906;
  1322. r906make(n,a1,a2,(T0*)C);
  1323. R=(T0*)n;
  1324. }
  1325. return R;
  1326. }
  1327. /*No:EXTERNAL_PROCEDURE.alias_string*/
  1328. /*No:EXTERNAL_PROCEDURE.ensure_assertion*/
  1329. /*No:EXTERNAL_PROCEDURE.code_require*/
  1330. T0* r883run_ensure(T0* a1){
  1331. T0* R=NULL;
  1332. T0* _r=NULL;
  1333. r608clear(((T608*)(oBC359assertion_collector)));
  1334. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1335. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1336. }/*]*/
  1337. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  1338. _r=r883runnable(oBC359assertion_collector,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  1339. /*IF*/if ((_r)!=((void*)(NULL))) {
  1340. {T633*n=malloc(sizeof(*n));
  1341. *n=M633;
  1342. r633from_runnable(n,_r);
  1343. R=(T0*)n;
  1344. }
  1345. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  1346. /*]*/
  1347. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1348. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1349. }/*]*/
  1350. }
  1351. /*FI*/return R;
  1352. }
  1353. T0* r883run_require(T0* a1){
  1354. T0* R=NULL;
  1355. T0* _ar=NULL;
  1356. T0* _hc=NULL;
  1357. T0* _er=NULL;
  1358. T0* _r=NULL;
  1359. int _i=0;
  1360. r522clear(((T522*)(oBC359require_collector)));
  1361. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
  1362. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  1363. _i=1;
  1364. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  1365. _er=r522item(((T522*)(oBC359require_collector)),_i);
  1366. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  1367. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  1368. _r=r883runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T808*)((T808*)a1)))->_current_type/*4*/),a1);
  1369. /*IF*/if ((_r)!=((void*)(NULL))) {
  1370. {T343*n=malloc(sizeof(*n));
  1371. *n=M343;
  1372. r343from_runnable(n,_r);
  1373. _er=(T0*)n;
  1374. }
  1375. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  1376. /*]*/
  1377. /*IF*/if ((_ar)==((void*)(NULL))) {
  1378. _ar=se_ma522(1,_er);
  1379. }
  1380. else {
  1381. r522add_last(((T522*)_ar),_er);
  1382. }
  1383. /*FI*/}
  1384. /*FI*/}
  1385. /*FI*/_i=(_i)+(1);
  1386. }
  1387. /*IF*/if ((_ar)!=((void*)(NULL))) {
  1388. {T541*n=malloc(sizeof(*n));
  1389. *n=M541;
  1390. /*[IRF3.3make*/((((T541*)(n)))->_list)=(_ar);
  1391. /*]*/
  1392. R=(T0*)n;
  1393. }
  1394. }
  1395. /*FI*/}
  1396. /*FI*/return R;
  1397. }
  1398. /*No:EXTERNAL_PROCEDURE.result_type*/
  1399. /*No:EXTERNAL_PROCEDURE.fz_03*/
  1400. /*No:EXTERNAL_PROCEDURE.em1*/
  1401. void r883pretty_print(T883* C){
  1402. T0* _fn=NULL;
  1403. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  1404. /*]*/
  1405. r238indent(((T238*)(oBC364fmt)));
  1406. r883pretty_print_profile(C);
  1407. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_355));
  1408. /*IF*/if (((((T883*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1409. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1410. /*]*/
  1411. r238indent(((T238*)(oBC364fmt)));
  1412. r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_355));
  1413. r805pretty_print(((T805*)((((T883*)C))->_obsolete_mark/*28*/)));
  1414. }
  1415. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1416. /*]*/
  1417. r238indent(((T238*)(oBC364fmt)));
  1418. /*IF*/if (((((T883*)C))->_header_comment/*16*/)!=((void*)(NULL))) {
  1419. r393pretty_print(((T393*)((((T883*)C))->_header_comment/*16*/)));
  1420. }
  1421. /*FI*//*IF*/if (((((T883*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1422. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1423. /*]*/
  1424. r343pretty_print(((T343*)((((T883*)C))->_require_assertion/*32*/)));
  1425. }
  1426. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1427. /*]*/
  1428. r238indent(((T238*)(oBC364fmt)));
  1429. r883pretty_print_routine_body(C);
  1430. /*IF*/if (((((T883*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1431. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1432. /*]*/
  1433. r633pretty_print(((T633*)((((T883*)C))->_ensure_assertion/*36*/)));
  1434. }
  1435. /*FI*//*IF*/if (((((T883*)C))->_rescue_compound/*40*/)!=((void*)(NULL))) {
  1436. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1437. /*]*/
  1438. r238indent(((T238*)(oBC364fmt)));
  1439. r238keyword(((T238*)(oBC364fmt)),((T0*)ms3_355));
  1440. r592pretty_print(((T592*)((((T883*)C))->_rescue_compound/*40*/)));
  1441. }
  1442. /*FI*//*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1443. /*]*/
  1444. r238indent(((T238*)(oBC364fmt)));
  1445. r238keyword(((T238*)(oBC364fmt)),((T0*)ms4_355));
  1446. /*IF*/if ((((((T883*)C))->_end_comment/*44*/)!=((void*)(NULL)))&&(!(r393dummy(((T393*)((((T883*)C))->_end_comment/*44*/)))))) {
  1447. r393pretty_print(((T393*)((((T883*)C))->_end_comment/*44*/)));
  1448. }
  1449.  else if (r238print_end_routine(((T238*)(oBC364fmt)))) {
  1450. r238put_string(((T238*)(oBC364fmt)),((T0*)ms5_355));
  1451. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  1452. X776definition_pretty_print(_fn);
  1453. }
  1454. /*FI*/r238put_character(((T238*)(oBC364fmt)),'\n');
  1455. }
  1456. /*No:EXTERNAL_PROCEDURE.obsolete_mark*/
  1457. /*No:EXTERNAL_PROCEDURE.set_clients*/
  1458. /*No:EXTERNAL_PROCEDURE.em2*/
  1459. /*No:EXTERNAL_PROCEDURE.names*/
  1460. /*No:EXTERNAL_PROCEDURE.require_assertion*/
  1461. /*No:EXTERNAL_PROCEDURE.code_ensure*/
  1462. void r883set_rescue_compound(T883* C,T0* a1){
  1463. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  1464. r883error(r883start_position(C),((T0*)ms6_355));
  1465. }
  1466. /*FI*/C->_rescue_compound=a1;
  1467. }
  1468. void r883pretty_print_profile(T883* C){
  1469. r883pretty_print_names(C);
  1470. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(2);
  1471. /*]*/
  1472. r883pretty_print_arguments(C);
  1473. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(3);
  1474. /*]*/
  1475. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1476. r238put_string(((T238*)(oBC364fmt)),((T0*)ms8_359));
  1477. X291pretty_print((((T883*)C))->_result_type/*12*/);
  1478. }
  1479. /*FI*/}
  1480. void r883pretty_print_names(T883* C){
  1481. int _i=0;
  1482. _i=1;
  1483. r883pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  1484. _i=(_i)+(1);
  1485. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1486. r238put_string(((T238*)(oBC364fmt)),((T0*)ms9_359));
  1487. r883pretty_print_one_name(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/);
  1488. _i=(_i)+(1);
  1489. }
  1490. }
  1491. void r883make_external_routine(T883* C,T0* a1,T0* a2){
  1492. C->_native=a1;
  1493. C->_alias_string=a2;
  1494. }
  1495. int r883can_hide(T883* C,T0* a1,T0* a2){
  1496. int R=0;
  1497. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1498. /*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1499. r683add_position(X359start_position(a1));
  1500. r883error(r883start_position(C),((T0*)ms5_359));
  1501. }
  1502. /*FI*/}
  1503. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1504. /*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1505. r683add_position(X359start_position(a1));
  1506. r883error(r883start_position(C),((T0*)ms6_359));
  1507. }
  1508.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1509. r683add_position(X359start_position(a1));
  1510. r883error(r883start_position(C),((T0*)ms7_359));
  1511. }
  1512. /*FI*/}
  1513. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1514. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1515. /*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1516. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1517. r7append(((T7*)(oBC683explanation)),b1);
  1518. }/*]*/
  1519. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  1520. r7append(((T7*)(oBC683explanation)),b1);
  1521. }/*]*/
  1522. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1523. }
  1524. /*FI*/}
  1525. /*FI*/}
  1526. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1527. /*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1528. /*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1529. r683add_position(X359start_position(a1));
  1530. r683add_position(r883start_position(C));
  1531. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1532. r7append(((T7*)(oBC683explanation)),b1);
  1533. }/*]*/
  1534. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)((T368*)a2)))->_current_type/*0*/);
  1535. r7append(((T7*)(oBC683explanation)),b1);
  1536. }/*]*/
  1537. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1538. }
  1539. /*FI*/}
  1540. /*FI*/}
  1541. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1542. return R;
  1543. }
  1544. /*No:EXTERNAL_PROCEDURE.header_comment*/
  1545. int r883is_merge_with(T883* C,T0* a1,T0* a2){
  1546. int R=0;
  1547. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1548. /*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1549. r683add_position(X359start_position(a1));
  1550. r883error(r883start_position(C),((T0*)ms2_359));
  1551. }
  1552. /*FI*/}
  1553. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1554. /*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1555. r683add_position(X359start_position(a1));
  1556. r883error(r883start_position(C),((T0*)ms3_359));
  1557. }
  1558.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1559. r683add_position(X359start_position(a1));
  1560. r883error(r883start_position(C),((T0*)ms4_359));
  1561. }
  1562. /*FI*/}
  1563. /*FI*//*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1564. /*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1565. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1566. }
  1567. /*FI*/}
  1568. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1569. /*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1570. r683add_position(X359start_position(a1));
  1571. r883error(r883start_position(C),((T0*)ms12_359));
  1572. }
  1573. /*FI*/}
  1574. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1575. return R;
  1576. }
  1577. /*No:EXTERNAL_PROCEDURE.fz_dot*/
  1578. /*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
  1579. /*No:EXTERNAL_PROCEDURE.first_name*/
  1580. /*No:EXTERNAL_PROCEDURE.clients*/
  1581. void r883collect_for(T883* C,int a1){
  1582. /*IF*/if ((a1)==(1001)) {
  1583. /*IF*/if (((((T883*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1584. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/))) {
  1585. r522add_last(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/);
  1586. }
  1587. /*FI*/}
  1588. /*FI*/}
  1589. else {
  1590. /*IF*/if (((((T883*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1591. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T883*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  1592. /*]*/
  1593. r633add_into(((T633*)((((T883*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  1594. }
  1595. /*FI*/}
  1596. /*FI*/}
  1597. void r883error(T0* a1,T0* a2){
  1598. r683add_position(a1);
  1599. r683error(((T683*)(oBC364eh)),a2);
  1600. }
  1601. /*No:EXTERNAL_PROCEDURE.base_class*/
  1602. void r883pretty_print_arguments(T883* C){
  1603. /*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1604. r31pretty_print(((T31*)((((T883*)C))->_arguments/*24*/)));
  1605. }
  1606. /*FI*/}
  1607. void r883pretty_print_routine_body(T883* C){
  1608. r238keyword(((T238*)(oBC364fmt)),((T0*)ms1_279));
  1609. X832pretty_print((((T883*)C))->_native/*48*/);
  1610. /*IF*/if ((!(r7is_equal(((T7*)(r883external_c_name(C))),X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/))))||((/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/)>(1))) {
  1611. r238indent(((T238*)(oBC364fmt)));
  1612. r238keyword(((T238*)(oBC364fmt)),((T0*)ms2_279));
  1613. r238put_character(((T238*)(oBC364fmt)),'\42');
  1614. r238put_string(((T238*)(oBC364fmt)),r883external_c_name(C));
  1615. r238put_character(((T238*)(oBC364fmt)),'\42');
  1616. }
  1617. /*FI*/}
  1618. void r883make_e_feature(T883* C,T0* a1,T0* a2){
  1619. C->_names=a1;
  1620. C->_result_type=a2;
  1621. }
  1622. void r883check_obsolete(T883* C){
  1623. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1624. /*IF*/if (((((T883*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1625. /*[IRF3.6append*/{T0* b1=((T0*)ms7_355);
  1626. r7append(((T7*)(oBC683explanation)),b1);
  1627. }/*]*/
  1628. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T883*)C))->_obsolete_mark/*28*/))))->_to_string/*12*/;
  1629. r7append(((T7*)(oBC683explanation)),b1);
  1630. }/*]*/
  1631. r883warning(r883start_position(C),((T0*)ms137_470));
  1632. }
  1633. /*FI*/}
  1634. /*FI*/}
  1635. void r883warning(T0* a1,T0* a2){
  1636. r683add_position(a1);
  1637. r683warning(((T683*)(oBC364eh)),a2);
  1638. }
  1639. /*No:CALL_INFIX_AND_THEN.arguments*/
  1640. T0* r655add_comment(T655* C,T0* a1){
  1641. T0* R=NULL;
  1642. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1643. R=(T0*)C;
  1644. }
  1645. else {
  1646. {T529*n=malloc(sizeof(*n));
  1647. *n=M529;
  1648. r529make(n,(T0*)C,a1);
  1649. R=(T0*)n;
  1650. }
  1651. }
  1652. /*FI*/return R;
  1653. }
  1654. int r655to_integer(T655* C){
  1655. int R=0;
  1656. r655error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1657. return R;
  1658. }
  1659. int r655is_a(T655* C,T0* a1){
  1660. int R=0;
  1661. R=X291is_a(X291run_type((((T655*)C))->_result_type/*16*/),X291run_type(X662result_type(a1)));
  1662. /*IF*/if (!(R)) {
  1663. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*//*)*/);
  1664. r655error(X662start_position(a1),((T0*)ms4_662));
  1665. }
  1666. /*FI*/return R;
  1667. }
  1668. /*No:CALL_INFIX_AND_THEN.is_current*/
  1669. /*No:CALL_INFIX_AND_THEN.us_and_then*/
  1670. void r655make(T655* C,T0* a1,T0* a2,T0* a3){
  1671. T0* _eal=NULL;
  1672. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1673. r683add_position(a2);
  1674. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1675. r683fatal_error(((T683*)(oBC364eh)),b1);
  1676. }/*]*/
  1677. }
  1678. /*FI*/{T454*n=malloc(sizeof(*n));
  1679. *n=M454;
  1680. r454make(n,r655operator(),a2);
  1681. C->_feature_name=(T0*)n;
  1682. }
  1683. {T431*n=malloc(sizeof(*n));
  1684. *n=M431;
  1685. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1686. /*]*/
  1687. _eal=(T0*)n;
  1688. }
  1689. r655make_call_1(C,a1,(((T655*)C))->_feature_name/*24*/,_eal);
  1690. }
  1691. void r655print_as_target(T655* C){
  1692. r238put_character(((T238*)(oBC364fmt)),'\50');
  1693. r655pretty_print(C);
  1694. r238put_character(((T238*)(oBC364fmt)),'\51');
  1695. r238put_character(((T238*)(oBC364fmt)),'\56');
  1696. }
  1697. /*No:CALL_INFIX_AND_THEN.nb_errors*/
  1698. /*No:CALL_INFIX_AND_THEN.feature_name*/
  1699. /*No:CALL_INFIX_AND_THEN.fz_iinaiv*/
  1700. /*No:CALL_INFIX_AND_THEN.run_feature*/
  1701. /*No:CALL_INFIX_AND_THEN.start_position*/
  1702. /*No:CALL_INFIX_AND_THEN.target*/
  1703. /*No:CALL_INFIX_AND_THEN.precedence*/
  1704. T0* r655to_runnable(T655* C,T0* a1){
  1705. T0* R=NULL;
  1706. T0* _tla=NULL;
  1707. T0* _a=NULL;
  1708. /*IF*/if (((((T655*)C))->_current_type/*4*/)==((void*)(NULL))) {
  1709. r655to_runnable_0(C,a1);
  1710. _a=r431to_runnable(((T431*)((((T655*)C))->_arguments/*20*/)),a1);
  1711. /*IF*/if ((_a)==((void*)(NULL))) {
  1712. r655error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/),((T0*)ms55_470));
  1713. }
  1714. else {
  1715. C->_arguments=_a;
  1716. }
  1717. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1718. r431match_with(((T431*)((((T655*)C))->_arguments/*20*/)),(((T655*)C))->_run_feature/*12*/);
  1719. }
  1720. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1721. _tla=(((T655*)C))->_result_type/*16*/;
  1722. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1723. case 239: 
  1724. break;
  1725. default:
  1726. _tla=NULL;
  1727. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1728. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/));
  1729. }
  1730. /*FI*/}
  1731. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1732. R=(T0*)C;
  1733. }
  1734. /*FI*/}
  1735. else {
  1736. R=r655twin(C);
  1737. /*[IRF3.3set_current_type*/((((T655*)(((T655*)R))))->_current_type)=(NULL);
  1738. /*]*/
  1739. R=r655to_runnable(((T655*)R),a1);
  1740. }
  1741. /*FI*/return R;
  1742. }
  1743. void r655bracketed_pretty_print(T655* C){
  1744. r238put_character(((T238*)(oBC364fmt)),'\50');
  1745. r655pretty_print(C);
  1746. r238put_character(((T238*)(oBC364fmt)),'\51');
  1747. }
  1748. /*No:CALL_INFIX_AND_THEN.result_type*/
  1749. T0* r655twin(T655* C){
  1750. T0* R=NULL;
  1751. R=malloc(sizeof(*C));
  1752. *((T655*)R)=*C;
  1753. return R;
  1754. }
  1755. /*No:CALL_INFIX_AND_THEN.set_current_type*/
  1756. T0* r655operator(void){
  1757. T0* R=NULL;
  1758. R=((T0*)ms28_473);
  1759. return R;
  1760. }
  1761. /*No:CALL_INFIX_AND_THEN.atomic_precedence*/
  1762. void r655pretty_print(T655* C){
  1763. /*IF*/if ((X662precedence((((T655*)C))->_target/*8*/))==(13)) {
  1764. X662pretty_print((((T655*)C))->_target/*8*/);
  1765. r655print_op(C);
  1766. /*IF*/if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1767. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1768. }
  1769.  else if ((5)>=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/))) {
  1770. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1771. }
  1772. else {
  1773. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1774. }
  1775. /*FI*/}
  1776.  else if ((X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/))==(13)) {
  1777. /*IF*/if ((X662precedence((((T655*)C))->_target/*8*/))>=(5)) {
  1778. X662bracketed_pretty_print((((T655*)C))->_target/*8*/);
  1779. }
  1780. else {
  1781. X662pretty_print((((T655*)C))->_target/*8*/);
  1782. }
  1783. /*FI*/r655print_op(C);
  1784. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1785. }
  1786.  else if ((5)<=(X662precedence((((T655*)C))->_target/*8*/))) {
  1787. X662bracketed_pretty_print((((T655*)C))->_target/*8*/);
  1788. r655print_op(C);
  1789. /*IF*/if ((5)<=(X662precedence(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/))) {
  1790. X662bracketed_pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1791. }
  1792. else {
  1793. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1794. }
  1795. /*FI*/}
  1796. else {
  1797. X662pretty_print((((T655*)C))->_target/*8*/);
  1798. r655print_op(C);
  1799. X662pretty_print(/*(IRF4.6arg1*/r431first(((T431*)((((T655*)C))->_arguments/*20*/)))/*)*/);
  1800. }
  1801. /*FI*/}
  1802. void r655print_op(T655* C){
  1803. r238put_character(((T238*)(oBC364fmt)),'\40');
  1804. /*[IRF3.6pretty_print*/{T454* C1=((T454*)((((T655*)C))->_feature_name/*24*/));
  1805. r238put_string(((T238*)(oBC364fmt)),(((T454*)C1))->_to_string/*4*/);
  1806. }/*]*/
  1807. r238put_character(((T238*)(oBC364fmt)),'\40');
  1808. }
  1809. /*No:CALL_INFIX_AND_THEN.current_type*/
  1810. void r655make_call_1(T655* C,T0* a1,T0* a2,T0* a3){
  1811. C->_target=a1;
  1812. C->_feature_name=a2;
  1813. C->_arguments=a3;
  1814. }
  1815. /*No:CALL_INFIX_AND_THEN.is_manifest_string*/
  1816. /*No:CALL_INFIX_AND_THEN.is_void*/
  1817. void r655to_runnable_0(T655* C,T0* a1){
  1818. C->_current_type=a1;
  1819. r655cpc_to_runnable(C,a1);
  1820. C->_result_type=/*X496*/((T0*)(((T808*)((T808*)((((T655*)C))->_run_feature/*12*/))))->_result_type/*24*/);
  1821. /*IF*/if (((((T655*)C))->_result_type/*16*/)==((void*)(NULL))) {
  1822. r683add_position(X496start_position((((T655*)C))->_run_feature/*12*/));
  1823. r655error((((T454*)((T454*)((((T655*)C))->_feature_name/*24*/))))->_start_position/*8*/,((T0*)ms1_295));
  1824. }
  1825.  else if (X291is_like_current((((T655*)C))->_result_type/*16*/)) {
  1826. C->_result_type=X662result_type((((T655*)C))->_target/*8*/);
  1827. }
  1828. /*FI*/}
  1829. void r655cpc_to_runnable(T655* C,T0* a1){
  1830. T0* _rc=NULL;
  1831. T0* _t=NULL;
  1832. _t=X662to_runnable((((T655*)C))->_target/*8*/,a1);
  1833. /*IF*/if ((_t)==((void*)(NULL))) {
  1834. r683add_position(X662start_position((((T655*)C))->_target/*8*/));
  1835. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1836. r683fatal_error(((T683*)(oBC364eh)),b1);
  1837. }/*]*/
  1838. }
  1839. /*FI*/C->_target=_t;
  1840. _rc=X291run_class(X662result_type((((T655*)C))->_target/*8*/));
  1841. C->_run_feature=r368get_rf(((T368*)_rc),(T0*)C);
  1842. r576update((((T655*)C))->_target/*8*/,(((T655*)C))->_run_feature/*12*/);
  1843. }
  1844. void r655error(T0* a1,T0* a2){
  1845. r683add_position(a1);
  1846. r683error(((T683*)(oBC364eh)),a2);
  1847. }
  1848. /*No:CALL_INFIX_AND_THEN.fatal_error*/
  1849. /*No:CALL_INFIX_AND_THEN.fz_bad_argument*/
  1850. /*No:CALL_INFIX_AND_THEN.arg1*/
  1851.  
  1852.